package com.cyx.gametool.view;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;

public class TextAreaPrintLog {

    private final TextArea textArea;


    public TextAreaPrintLog(TextArea textArea) {
        this.textArea = textArea;
        textArea.setEditable(false);
        textArea.setWrapText(true);// 自动换行
    }

    /**
     * 新增文本
     */
    public void addInfoLog(String log, Object... args) {
        textArea.appendText(info(log, args));
    }

    /**
     * 新增错误文本
     */
    public void addErrorLog(String log, Object... args) {
        textArea.appendText(error(log, args));
    }

    /**
     * 清除所有文本
     */
    public void clearLog() {
        textArea.clear();
    }

    /**
     * 清除文本并新增文本
     */

    public void clearAndAddLog(String log) {
        textArea.setText(info(log));
    }

    /**
     * 清除文本并新增文本
     */

    public void clearAndAddErrorLog(String log) {
        textArea.setText(error(log));
    }

    private String error(String text, Object... args) {
        return StrUtil.format("【ERROR】{}\n{}\n", DateUtil.now(), StrUtil.format(text, args));
    }

    private String info(String text, Object... args) {
        return StrUtil.format("【INFO】{}\n{}\n", DateUtil.now(), StrUtil.format(text, args));
    }

    /**
     * 输入错误的配置文件路径或文件夹,并且修改错误控件样式
     *
     * @param excelPath
     * @param errorLog  请输入配置文件路径或文件夹
     */
    public void errorTextFieldLog(TextField excelPath, String errorLog) {
        excelPath.getStyleClass().add("input-error-border");
        addErrorLog(errorLog);
    }
}
